#include "stm32f10x.h"
#include "OLED_I2C.h"
#include "HX711.h"
#include "usart.h"
#include "sys.h"
#include "delay.h"
#include "k210.h"
#include "QR_Encode.h"
#include "buzzer.h"
#include "pwm.h"
#include "key.h"

/*
key0（去皮）--PA0
key1（误差-）--PA1
key2（误差+）--PA2
蜂鸣器+极连接--PA7 负极连接LED+ LED-连接GND
OLED屏幕SCL--PB6 ;SDA--PB7
hx711  SCK--PB0 DT--PB1
LED补光灯红线+蓝线——㙕uuoO



*/
u32 Duty;
/*
int main(void)
{
//	u8 a;
	extern const unsigned char BMP1[];
	RCC_Configuration(); 		 //系统时钟初始化 
	NVIC_Configuration();		 //优先级初始化
	I2C_Configuration(); 		 //IIC初始化
//	USART1_Init(115200); 		 //串口1初始化（调试用）
//	USART2_Init(115200);  	 //串口2初始化（与K210通讯用）
 	
	OLED_Init();         	   //OLED屏幕初始化
	Init_HX711pin();         //压力传感器初始化
//	BUZZER_Init();           //蜂鸣器初始化
//	EXIT_Key_Config();              //按键初始化
//	LED_Init();              //LED补光灯初始化
//	TIM3_PWM_Init(59999,23); //设置频率为50Hz，公式为：溢出时间Tout（单位秒）=(arr+1)(psc+1)/Tclk	 20MS = (59999+1)*(23+1)/72000000
                           //Tclk为通用定时器的时钟，如果APB1没有分频，则就为系统时钟，72MHZ
                           //PWM时钟频率=72000000/(59999+1)*(23+1) = 50HZ (20ms),设置自动装载值60000,预分频系数24
	//Get_Maopi();				   	 //重新获取重量
	delay_ms(500);        	 //延时500ms等待初始化完成
	PowerOn();					  	 //开机动画		
	//Get_Weight();				  	 //获取重量
	Interface();          	 //界面
	Get_Maopi();				   	 //重新获取重量
	delay_ms(200);
//	TIM_SetCompare3(TIM3,3000); //LED改变比较值TIM3->CCR2达到调节占空比的效果

   //OLED_QRcode_Display("qr_test单片机生成二维码123456",2,0);
   //OLED_QRcode_Display("https//gaho.xyz",32,1);
	while(1)
	{
		Get_Weight();//读取重量信息
		OLED_ShowNum(80,0,Weight_actual,2);//处理并显示实际重量
		//printf("%dg\r\n",Weight_actual); //串口1打印重量信息（调试用） 	
		//OLED_QRcode_Display("wxp://f2f1xnANG260A_k1bQHIHPTRW7BRbm_Yed9x",2,0);		
		//if(Weight_actual<5000){             //如果小于5KG
//			Key_Judgment();
//			Fruit_Judgment();			
		}//else{
			//BUZZER_BEEP1();
			//OLED_Warning();
		//}
//		unsigned char i;

		//printf("净重量 = %d g\r\n",Weight_actual); //打印 
	//	OLED_ShowNum(50,4,Weight_actual,2);
		//if()
//				
//		for(unsigned char i=0;i<=8;i++)
//		{
//			OLED_ShowNum(i*8,0,USART1_RX_BUF[i],2);
//			delay_ms(200);
//		}
//		printf("x=%d \r\n",boll_x);
//		printf("y=%d \r\n",boll_y);
		//显示k210的数据
//		OLED_ShowNum(64,2,boll_x,2);
//		OLED_ShowNum(64,4,boll_x,2);
//		delay_ms(100);
	//	printf("500ms:");
	//	printf("%d\n",USART2_RX_BUF);
	//	USART_RX_STA=0;
	//}
}

		//delay_ms(100);
//		OLED_ShowStr(0,3,"HelTec Automation",1);//测试6*8字符
//		OLED_ShowStr(0,4,"Hello Tech",2);				//测试8*16字符
//		delay_s(2);
//		OLED_CLS();//清屏
//		OLED_OFF();//测试OLED休眠
//		delay_s(2);
//		OLED_ON();//测试OLED休眠后唤醒
//		OLED_DrawBMP(0,0,128,8,(unsigned char *)BMP1);//测试BMP位图显示
//		delay_s(6);
//			OLED_CLS();//清屏

*/
int main(void)
{	
	extern const unsigned char BMP1[];
	RCC_Configuration(); 		 //系统时钟初始化 
	Init_HX711pin();
	
	NVIC_Configuration(); 	 //设置NVIC中断分组2:2位抢占优先级，2位响应优先级
	USART1_Init(115200); 		 //串口1初始化（调试用）
//	USART2_Init(115200);  	 //串口2初始化（与K210通讯用）
	I2C_Configuration(); 		 //IIC初始化
	EXIT_Key_Config();       //按键中断初始化
	BUZZER_Init();           //蜂鸣器初始化	
	
	//GPIO_WriteBit(BUZZERPORT,BUZZER,(BitAction)(1));
	
	OLED_Init(); 
	
	BUZZER_BEEP1();
	Get_Maopi();				//称毛皮重量
	PowerOn();					//开机动画
	//OLED_ShowStr(90,1,"Ai",2);		//AI
	//OLED_ShowCN(106,1,4);//秤
	//delay_ms(1000);
	Get_Maopi();				//重新获取毛皮重量
	//Interface();          	 //界面
	//OLED_QRcode_Display("https//gaho.xyz",32,1);
	OLED_QRcode_Display("wxp://f2f1xrhOXQHIjjnokBOzsSOm1SIbpUYJXQpA",2,0);
	OLED_ShowStr(112,2,"g",2);//
	OLED_ShowStr(80,0,"Ai",2);		//AI
	OLED_ShowCN(96,0,4);//秤
		delay_ms(1000);
	//BUZZER_BEEP0();
	while(1)
	{			
		Get_Weight();	
		//OLED_ShowNum(69,6,x,2);
		//OLED_ShowNum(80,6,y,2);
		//OLED_ShowStr(80,0,"Ai",2);		//AI
		//OLED_ShowCN(96,0,4);//秤

		//OLED_ShowNum(112,4,USART_RX_BUF[2],2);
	//	OLED_ShowNum(80,6,USART_RX_BUF[3],2);
	//	OLED_ShowNum(96,6,USART_RX_BUF[4],2);
		//OLED_ShowNum(112,6,USART_RX_BUF[5],2);
		OLED_ShowNum(80,2,Weight_Shiwu,2);//处理并显示实际重量
		
	}
}






